package com.zhuqi.arraylist;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.ArrayList;
import java.util.ListIterator;

/**
 * @author : ZhuQi
 * @version : 时间:2022/8/15 22:17 版本:
 * @description : ArrayList Test
 */
@SpringBootTest
public class Demo {

    ArrayList<String> list = new ArrayList<>();


    @BeforeEach
    public void beforeEach() {
        list.add("tom");
        list.add("andy");
        list.add("lily");
        list.add("jack");
        list.add("hack");
    }


    /**
     * 测试 LisIterator api
     */
    @Test
    public void testListIterator() {
        ListIterator<String> listIterator = list.listIterator(list.size());

        // hasPrevious() 是否有上一个
        while (listIterator.hasPrevious()) {
            // 输出上一个的下标
            System.out.print(listIterator.previousIndex() + "--");
            // 输出上一个
            System.out.println(listIterator.previous());
        }

    }

    /**
     * 测试内容: 调整数组大小为实际元素大小
     * 测试结果:
     */
    @Test
    public void test_trimToSize() throws Exception {
        ArrayList<String> list = new ArrayList<>(10);
        list.add("1");
        list.add("2");
        System.out.println(list.size());

        list.trimToSize();
        System.out.println(list);

        list.ensureCapacity(1);
    }
}
